home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / archiver / ldiff12s.zip / LDVARI.PAS < prev    next >
Pascal/Delphi Source File  |  1989-07-15  |  6KB  |  185 lines

  1. (*---------------------------------------------------------------------------*)
  2. (*LDVari.pas ò╧Éöü@                 (C) ÄOû╪ÿaòF NIFTY SDR SDI00147 1989/7/1 *)
  3. (*$B-,F-,I-,N-                                                               *)
  4. (*---------------------------------------------------------------------------*)
  5. UNIT LDVari;
  6.  
  7.  
  8. INTERFACE
  9.  
  10.  
  11. USES
  12.    Dos,
  13.    MyType;
  14.  
  15.  
  16. TYPE BFILE   = RECORD
  17.                   Handle  : WORD;
  18.                   Name    : ARRAY[0..79] OF CHAR;
  19.                   OpenFlg : BOOLEAN;
  20.                   Path    : DirStr;
  21.                END;
  22. (*****************************************************************************)
  23.      LHdr  = RECORD
  24.                 LNum      : BYTE;                  {  1  0}
  25.                 LCSum     : BYTE;                  {  1  1}
  26.                 LHdrID    : ARRAY[1..2] OF CHAR;   {  2  2}
  27.         LHdrSID   : ARRAY[1..3] OF CHAR;   {  3  4}
  28.                 LSize     : LONGINT;               {  4  7}
  29.                 LFSize    : LONGINT;               {  4 11}
  30.                 LTime     : LONGINT;               {  4 15}
  31.                 LCrc      : WORD;                  {  2  2}
  32.         LFName    : STRING;                {256 21}
  33.          END;
  34.      L2Hdr = RECORD
  35.                 LOldCrc   : WORD;                  {  2  0}
  36.                 LOldFSize : LONGINT;               {  4  2}
  37.                 LCTYPE    : CHAR;                  {  1  6}
  38.                 LEI       : BYTE;                  {  1  7}
  39.                 LEJ       : BYTE;                  {  1  8}
  40.                 LOldName  : STRING;                {256  9}
  41.              END;
  42.      L3Hdr = RECORD
  43.                 LOSType   : CHAR;                  {  1  0}
  44.                 LAttr     : WORD;                  {  2  1}
  45.              END;
  46. (*****************************************************************************)
  47. TYPE LzdRec   = RECORD
  48.            NewName  : Str12;
  49.            NewAttr  : WORD;
  50.            NewTime  : LONGINT;
  51.            NewFSize : LONGINT;
  52.            NewSize  : LONGINT;
  53.            NewHSize : BYTE;
  54.            NewCrc   : WORD;
  55.            OldCrc   : WORD;
  56.            OldFSize : LONGINT;
  57.            OldName  : Str12;
  58.            EI       : BYTE;
  59.            EJ       : BYTE;
  60.            CTYPE    : CHAR;
  61.         END;
  62. VAR  LzdFN    : LzdRec;
  63. (*****************************************************************************)
  64. CONST
  65.    RemarkTopMsg     = 0;
  66.    RemarkEndMsg     = 12;
  67.    TitleMsg         = 13;
  68.    LineMsg          = 14;
  69.    UsageTopMsg      = 15;
  70.    UsageEndMsg      = 19;
  71. (* Message *)
  72.    CopyRightMsg     = 20;
  73.    OldFileMsg       = 21;
  74.    OldFileOKMsg     = 22;
  75.    CreatingMsg      = 23;
  76.    FromMsg          = 24;
  77.    WithMsg          = 25;
  78.    ExtractOKMsg     = 26;
  79.    OverWriteMsg     = 27;
  80.    RatioMsg         = 28;
  81. (* Err Type 1 *)
  82.    LzdFNameErMsg    = 29;
  83.    CommandErMsg     = 30;
  84.    CantOpenErMsg    = 31;
  85.    ReadingErMsg     = 32;
  86.    WritingErMsg     = 33;
  87.    DiskFullErMsg    = 34;
  88.    CantCreateErMsg  = 35;
  89.    FileOpenMaxErMsg = 36;
  90.    StopErMsg        = 37;
  91.    HeapErMsg        = 38;
  92.    DosVerErMsg      = 39;
  93.    CommandLineErMsg = 40;
  94.    IsNotLzdErMsg    = 41;
  95.    NewVerErMsg      = 42;
  96.    CanNotFoundErMsg = 43;
  97.    OldFSizeErMsg    = 44;
  98.    OldCrcErMsg      = 45;
  99.    DecodeErMsg      = 46;
  100.    EncodeErMsg      = 47;
  101.    FatalErMsg       = 48;
  102.    UnKnownErMsg     = 49;
  103.    LzsErMsg         = 50;
  104.    LzhErMsg         = 51;
  105.    Wait150Msg       = 52;
  106.    Wait200Msg       = 53;
  107.  
  108.    LzdExt   = '.LZD';
  109.    TName1   = 'LZSS_WRK.)1(';
  110.  
  111.    CMD        : CHAR    = NUL;
  112.    CMDSET     : CSet    = ['H','X','C','T'];
  113.    LzdFName   : PathStr = '';
  114.    NewFName   : PathStr = '';
  115.    OldFName   : PathStr = '';
  116.    CrcTable   : ARRAY[0..$FF] OF WORD = (
  117.         $0000,$C0C1,$C181,$0140,$C301,$03C0,$0280,$C241,
  118.         $C601,$06C0,$0780,$C741,$0500,$C5C1,$C481,$0440,
  119.         $CC01,$0CC0,$0D80,$CD41,$0F00,$CFC1,$CE81,$0E40,
  120.         $0A00,$CAC1,$CB81,$0B40,$C901,$09C0,$0880,$C841,
  121.         $D801,$18C0,$1980,$D941,$1B00,$DBC1,$DA81,$1A40,
  122.         $1E00,$DEC1,$DF81,$1F40,$DD01,$1DC0,$1C80,$DC41,
  123.         $1400,$D4C1,$D581,$1540,$D701,$17C0,$1680,$D641,
  124.         $D201,$12C0,$1380,$D341,$1100,$D1C1,$D081,$1040,
  125.         $F001,$30C0,$3180,$F141,$3300,$F3C1,$F281,$3240,
  126.         $3600,$F6C1,$F781,$3740,$F501,$35C0,$3480,$F441,
  127.         $3C00,$FCC1,$FD81,$3D40,$FF01,$3FC0,$3E80,$FE41,
  128.         $FA01,$3AC0,$3B80,$FB41,$3900,$F9C1,$F881,$3840,
  129.         $2800,$E8C1,$E981,$2940,$EB01,$2BC0,$2A80,$EA41,
  130.         $EE01,$2EC0,$2F80,$EF41,$2D00,$EDC1,$EC81,$2C40,
  131.         $E401,$24C0,$2580,$E541,$2700,$E7C1,$E681,$2640,
  132.         $2200,$E2C1,$E381,$2340,$E101,$21C0,$2080,$E041,
  133.         $A001,$60C0,$6180,$A141,$6300,$A3C1,$A281,$6240,
  134.         $6600,$A6C1,$A781,$6740,$A501,$65C0,$6480,$A441,
  135.         $6C00,$ACC1,$AD81,$6D40,$AF01,$6FC0,$6E80,$AE41,
  136.         $AA01,$6AC0,$6B80,$AB41,$6900,$A9C1,$A881,$6840,
  137.         $7800,$B8C1,$B981,$7940,$BB01,$7BC0,$7A80,$BA41,
  138.         $BE01,$7EC0,$7F80,$BF41,$7D00,$BDC1,$BC81,$7C40,
  139.         $B401,$74C0,$7580,$B541,$7700,$B7C1,$B681,$7640,
  140.         $7200,$B2C1,$B381,$7340,$B101,$71C0,$7080,$B041,
  141.         $5000,$90C1,$9181,$5140,$9301,$53C0,$5280,$9241,
  142.         $9601,$56C0,$5780,$9741,$5500,$95C1,$9481,$5440,
  143.         $9C01,$5CC0,$5D80,$9D41,$5F00,$9FC1,$9E81,$5E40,
  144.         $5A00,$9AC1,$9B81,$5B40,$9901,$59C0,$5880,$9841,
  145.         $8801,$48C0,$4980,$8941,$4B00,$8BC1,$8A81,$4A40,
  146.         $4E00,$8EC1,$8F81,$4F40,$8D01,$4DC0,$4C80,$8C41,
  147.         $4400,$84C1,$8581,$4540,$8701,$47C0,$4680,$8641,
  148.         $8201,$42C0,$4380,$8341,$4100,$81C1,$8081,$4040);
  149. VAR
  150.    CRC        : WORD;
  151.    MaxLTime   : LONGINT;
  152.    NewFVar    : BFILE;
  153.    LzdFVar    : BFILE;
  154.    OldFVar    : BFILE;
  155.    WrkFVar    : BFILE;
  156.  
  157.    lh1        : LHdr;
  158.    lh2        : L2Hdr;
  159.    lh3        : L3Hdr;
  160.    buf1       : ARRAY[0..2000] OF BYTE ABSOLUTE lh1;
  161.    buf2       : ARRAY[0..2000] OF BYTE ABSOLUTE lh2;
  162.    buf3       : ARRAY[0..2000] OF BYTE ABSOLUTE lh3;
  163.  
  164.    rbuff      : ARRAY[1..$8003] OF BYTE;
  165.    wbuff      : ARRAY[1..$1000] OF BYTE;
  166.    DicSeg     : WORD;
  167.  
  168. TYPE
  169.    buftype = ARRAY[1..$8000] OF BYTE;
  170. VAR
  171.    DicBuf  : ^buftype;
  172.    DicBuf2 : ^buftype;
  173.    DicBuf3 : ^buftype;
  174.    DicBuf4 : ^buftype;
  175.    DicBuf5 : ^buftype;
  176.    DicBuf6 : ^buftype;
  177.    DicBuf7 : ^buftype;
  178.    DicBuf8 : ^buftype;
  179.  
  180.  
  181. IMPLEMENTATION
  182.  
  183.  
  184. END.
  185.